In a communication system a communication network is provided, which can link together two communication terminals so that the terminals can send data to each other in a call or other communication event. The data may include speech, text, images or video.
Modern communication systems are based on the transmission of digital signals. One type of communication network suitable for transmitting digital data is the Internet. Protocols which are used to carry voice signals over the Internet and other packet switched based networks are commonly referred to as Voice over Internet Protocol (VoIP).
Data, such as speech, may be input into an analogue input device of a terminal such as a microphone. The analogue signal output from the microphone is converted at the terminal to a digital signal by an analogue to digital converter. The digital signal is then encoded and placed in data packets for transmission to another terminal via the communication network.
Data packets are transmitted via the communication network. Each data packet includes a header portion and a payload portion. The header portion of the data packet contains information for transmitting and processing the data packet. This information may include an identification number and a source address that together uniquely identify the packet, a time stamp and a destination address. The payload portion of the data packet includes the encoded input signal. For example if the input signal is an audio signal the payload portion of the data packet may include encoded audio frames, wherein each frame represents a portion of the analogue signal.
Data packets transmitted via a packet switched network such as the Internet, share the resources of the network. Data packets may take different paths to travel across the network to the same destination and are therefore not transmitted via a dedicated ‘channel’ as in the case of circuit switched networks. However, it will be readily appreciated by a person skilled in the art that the term ‘channel’ may be used to describe the connection between two terminals via the packet switched network, and that the capacity of such a channel describes the maximum bit rate that may be transmitted from the transmitting terminal to the receiving terminal via the network.
Different types of encoding methods encode data at different bit rates. For example the codec ITU (International Telecommunication Union) G.722, a wideband codec (16 kHz sampling frequency), encodes data at a fixed high bit rate of 64 kbit/s and may be used to encode speech for transmission over a channel with a capacity to transfer bits at this high rate. The capacity of the channel is related to the bandwidth of the channel. A channel with a capacity to transfer bits at a high rate has a high bandwidth. Generally, encoding data at a high bit rate permits a detailed representation of the input signal to be encoded, which results in a high quality decoded signal. Conversely, ITU G.729, a narrowband codec (8 kHz sampling frequency), encodes data at a fixed low bit rate of 8 kbit/s and may be used to encode speech for transmission over a channel with a capacity to only transfer data at a low bit rate, i.e. a channel having a low bandwidth. A signal encoded at a low bit rate is a sparse representation of the input signal which may result in a lower quality decoded signal, due to the limited information in the decoded signal. A higher quality decoded signal may be achieved even when the signal is encoded at a low bit rate by employing a higher complexity encoding scheme. However a higher complexity encoding scheme requires greater processing resources at the encoder and/or decoder than a lower complexity encoding scheme.
When the capacity of a channel is exceeded, degradations to the signal such as delay or packet loss may occur. It is therefore desirable to transmit the signal at the highest possible bit rate without overloading the capacity of the channel. However since the resources of a packet switched network are shared, and since the topology of the network may change, the bandwidth of the channel is not fixed. Therefore encoding the data at the optimal bit rate during a call is problematic.
This problem is alleviated somewhat by use of an adaptive bit rate codec. Adaptive bit rate codecs encode data using a range of bit rates. For example Adaptive Multi Rate (AMR) codec may encode data at 12.2, 10.2, 7.95, 7.40, 6.70, 5.90, 5.15 and 4.75 kbit/s.
A bandwidth management module in the transmitting terminal is arranged to monitor whether the capacity of the channel is exceeded. This may be determined, for example, from the number of queued packets in the network buffers, or from the roundtrip time of data packets sent between the terminals. If it is determined that the maximum bandwidth of the channel is not being used, the adaptive bit rate codec may apply a higher bit rate to encode the data during the call.
However in some cases an adaptive bit rate codec may not be available to encode data. Incorporating an adaptive bit rate codec into a digital signal processor of a terminal may require excessive development time, or it may not be possible to incorporate an adaptive bit rate codec due to limitations of the processor. Also licensing an adaptive bit rate codec for use in the processor may be prohibitively expensive.
Furthermore even if a transmitting terminal is able to encode data using an adaptive bit rate codec, the adaptive bit rate codec may not be available at the receiving terminal to decode the data. As such the adaptive bit rate codec may not be used to encode data transmitted to the receiving terminal.
It is therefore an aim of the present invention to overcome the problems identified in the prior art. In particular it is an aim of the present invention to provide a method of encoding data at an optimal speech quality when only a limited number of bit rates are available to encode the data level, without overloading the channel or increasing latency.